package com.gkzf.ai.module.crm.controller.app.simpleCredit.vo.condition;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.gkzf.ai.module.crm.controller.app.simpleCredit.vo.house.UserAdmittanceHouseRespVO;
import com.gkzf.ai.module.crm.controller.app.simpleCredit.vo.vehicle.UserAdmittanceVehicleRespVO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

@Schema(description = "管理后台 - CRM 小程序用户补充信息准入条件 Response VO")
@Data
@ExcelIgnoreUnannotated
public class UserAdmittanceConditionRespVO {

    @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "13630")
    @ExcelProperty("主键")
    private Long id;

    @Schema(description = "身份证号")
    @ExcelProperty("身份证号")
    private String idNumber;

    @Schema(description = "小程序ID", example = "24252")
    @ExcelProperty("小程序ID")
    private String userOpenId;

    @Schema(description = "户籍地址 0不限制")
    @ExcelProperty("户籍地址 0不限制")
    private String censusRegister;

    @Schema(description = "岗位1工薪族，2法人", example = "1")
    @ExcelProperty("岗位1工薪族，2法人")
    private String customerType;

    @Schema(description = "单位性质  1或0不限制")
    @ExcelProperty("单位性质  1或0不限制")
    private String unitNature;

    @Schema(description = "行业")
    @ExcelProperty("行业")
    private String specialIndustry;

    @Schema(description = "年龄")
    @ExcelProperty("年龄")
    private Integer age;

    @Schema(description = "性别 0：男  1：女")
    @ExcelProperty("性别 0：男  1：女")
    private Integer gender;

    @Schema(description = "可贷点")
    @ExcelProperty("可贷点")
    private String loanUses;

    @Schema(description = "负债情况json")
    @ExcelProperty("负债情况json")
    private String creditReportLiabilityJson;

    @Schema(description = "逾期记录贷款和信用卡情况json")
    @ExcelProperty("逾期记录贷款和信用卡情况json")
    private String creditReportOverdueJson;

    @Schema(description = "查询记录情况json")
    @ExcelProperty("查询记录情况json")
    private String creditReportQueryJson;

    @Schema(description = "司法限制类型", example = "1")
    @ExcelProperty("司法限制类型")
    private String creditReportJudicialType;

    @Schema(description = "是否有社保缴纳记录 0：无  1：有")
    @ExcelProperty("是否有社保缴纳记录 0：无  1：有")
    private Integer isSocialSecurity;

    @Schema(description = "社保缴存地点")
    @ExcelProperty("社保缴存地点")
    private Integer creditReportSocialPlace;

    @Schema(description = "社保缴存期限")
    @ExcelProperty("社保缴存期限")
    private Integer creditReportSocialMonths;

    @Schema(description = "社保缴存基数")
    @ExcelProperty("社保缴存基数")
    private Double creditReportSocialBase;

    @Schema(description = "是否缴纳公积金")
    @ExcelProperty("是否缴纳公积金")
    private Integer isReserveFund;

    @Schema(description = "公积金缴纳地点")
    @ExcelProperty("公积金缴纳地点")
    private Integer creditReportFundPlace;

    @Schema(description = "公积金缴纳月数")
    @ExcelProperty("公积金缴纳月数")
    private Integer creditReportFundMonths;

    @Schema(description = "公积金缴纳基数")
    @ExcelProperty("公积金缴纳基数")
    private Double creditReportFundBase;

    @Schema(description = "0: 无此类情况 1大白户，2小白户", example = "1")
    @ExcelProperty("0: 无此类情况 1大白户，2小白户")
    private Integer creditReportWhiteType;

    @Schema(description = "0：五级分类正常   1 :五级分类不正常")
    @ExcelProperty("0：五级分类正常   1 :五级分类不正常")
    private Integer creditReportFiveLevel;

    @Schema(description = "是否纳税0 无 1有")
    @ExcelProperty("是否纳税0 无 1有")
    private Integer isPayTaxes;

    @Schema(description = "年收入(元)")
    @ExcelProperty("年收入(元)")
    private BigDecimal annualIncome;

    @Schema(description = "学历")
    @ExcelProperty("学历")
    private Integer education;

    @Schema(description = "是否有官司 仲裁 行政处罚等违法行为 0 无 1有")
    @ExcelProperty("是否有官司 仲裁 行政处罚等违法行为 0 无 1有")
    private Integer isIllegalRecord;

    @Schema(description = "其他")
    @ExcelProperty("其他")
    private String other;

    @Schema(description = "是否存在担保人代还、以资抵债、强制执行被纳入失信被执行人名单等情形 0：无  1：有")
    @ExcelProperty("是否存在担保人代还、以资抵债、强制执行被纳入失信被执行人名单等情形 0：无  1：有")
    private Integer isDiscreditedPerson;

    @Schema(description = "收入负债比")
    @ExcelProperty("收入负债比")
    private String incomeDebtRatio;

    @Schema(description = "公积金双边缴纳基数")
    @ExcelProperty("公积金双边缴纳基数")
    private Double creditReportBilateralFundBase;

    @Schema(description = "公积金双边缴纳比例")
    @ExcelProperty("公积金双边缴纳比例")
    private Integer creditReportBilateralRatio;

    @Schema(description = "车辆信息集合")
    private List<UserAdmittanceVehicleRespVO> vehicleRespList;

    @Schema(description = "房产信息集合")
    private List<UserAdmittanceHouseRespVO> houseRespList;

    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("创建时间")
    private LocalDateTime createTime;

}